package com.bosssoft.cloud.wechat.core.bean.template;

import com.alibaba.fastjson.annotation.JSONField;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.HashMap;

/**
 * @author wcy create on 2021/6/23 15:41 下午
 */

@Data
public class TemplateDataInfo implements Serializable {
    private static final long serialVersionUID = -1345910558078620805L;
    /**
     * 接收者openid
     */
    private String touser;
    /**
     * 模板ID
     */
    private String template_id;
    /**
     * * url
     */
    private String url;
    /**
     * * 跳小程序所需数据，不需跳小程序可不用传该数据
     */
    private String miniprogram;

    @Data
    private static class Miniprogram {
        /**
         * 所需跳转到的小程序appid（该小程序appid必须与发模板消息的公众号是绑定关联关系，暂不支持小游戏）
         */
        private String appid;
        /**
         * 所需跳转到小程序的具体页面路径，支持带参数,（示例index?foo=bar），要求该小程序已发布，暂不支持小游戏
         */
        private String pagepath;
    }

    /**
     * 模板数据
     */
    @JSONField(name = "data")
    private TemplateItem data = new TemplateItem();

    @AllArgsConstructor
    public static class TemplateItem extends HashMap<String, TemplateItem.Item> {
        private static final long serialVersionUID = -3728490424738325020L;

        @Data
        @NoArgsConstructor
        @AllArgsConstructor
        private static class Item {
            /**
             * 内容
             */
            private String value;
            /**
             * 模板内容字体颜色，不填默认为黑色
             */
            private String color;
        }

    }

    public void putItem(String key, String value, String color) {
        this.data.put(key, new TemplateItem.Item(value, color));
    }
}

